package cac.fenjian.resource.PointPackageSort.dao;

import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @className: PointPackageDao
 * @description: （描述这个类的作用）
 * @author:
 * @date: 2023/6/21 10:45:45 周三
 * @version: 1.0
 */
public interface PointPackageDao {

    //查询可以分拣的工作包--工作包分拣针对工作包
    List<HashMap> searchPointPackage(@Param("map") Map map);
    //查询可以分拣的AO---工作包分拣针对AO
    List<HashMap> searchPointAo(@Param("map") Map map);
    //修改备注
    int saveRemark(@Param("receiveRemark") String receiveRemark,@Param("msAssginWorkbintoolRelId") String msAssginWorkbintoolRelId);
    int queryPackageExistsWorkbin(@Param("msTaskPackageId") String msTaskPackageId);
    int queryPackageExistsTask(@Param("msTaskPackageId") String msTaskPackageId);
    //指定工作包创建叫箱任务
    HashMap callCreateTask(HashMap map);

    //指定工作包创建叫箱任务--测试环境
    HashMap callCreateTaskTest(HashMap map);
    //指定AO创建箱子--测试环境
    HashMap callCreateAoTaskTest(HashMap map);
    //指定AO创建箱子---正式环境
    HashMap callCreateAoTask(HashMap map);

    //查询是否在货架上以及是否有未完成任务
    int searChpalletCode(@Param("map")HashMap map);
    //修改未创建任务状态为已创建
    int updateMGkLogS(@Param("map")HashMap map);

    HashMap searchGkLogSupple(@Param("map") HashMap map);

    //查询未创建任务的信息
    List<HashMap> searchSortingTask(@Param("ip") String ip);

    //查询当前位置的工作包任务数量
    int queryPackageUnCreateTaskCnt(@Param("ip") String ip);

    List<HashMap> queryWorkbinMaterial(@Param("map") HashMap map);

    int insertReplaceMaterial(@Param("map") HashMap map);
    int updateSourceReplaceMatchInfo(@Param("map") HashMap map);
    int updateSourceState(@Param("map") HashMap map);

    void packageTopMatch(HashMap map);

    List<HashMap> queryPalletCode(@Param("map") Map map);


    int insertWorkbinTaskTmp(@Param("map") Map map);
    int deleteRepeatWorkbinForPakcage(@Param("groupCode") String groupCode);

    int queryPalletTaskExists(@Param("map") Map map);
    int queryTaskNotBackExists(@Param("map") Map map);

    List<HashMap> getAddTask(@Param("groupCode") String groupCode);

    //创建箱子日志
    int insertWorkbinGkLog(@Param("map") HashMap map);
    int insertRepeatWorkbinGkLog(@Param("map") HashMap map);
    //创建大件箱子日志
    int insertBigWorkbinGkLog(@Param("map") HashMap map);
    //创建托盘日志
    int insertToolGkLog(@Param("map") HashMap map);
    //清理没有创建任务的托盘箱子
    int clearWorkbinToolRel();
    int insertAssignWorkbinToolRel();

    List<HashMap> queryDealWorkbintoolRel();
    String queryToolCodeByPackage(@Param("map") HashMap map);
    String queryToolCodeByRule(@Param("map") HashMap map);
    int updateToolById(@Param("map")HashMap map);
    //查询，待完善
    List<HashMap> queryAssignWorkbintoolRel(@Param("map") HashMap map);

    List<HashMap> queryWorkbinCodes(@Param("toolCode") String toolCode);

    int insertSuppleGkLog(@Param("map") HashMap map);

    List<HashMap> searchInventoryMaterialByWorkbinCode(@Param("map") HashMap map);

    int updateAssginEotkninTool(@Param("toolCode") String toolCode);

    int updateWorkbinToolRelStatus(@Param("map") HashMap map);
    int updateDeliveryIsPaper(@Param("map") HashMap map);

    List<HashMap> queryCanReplaceWorkbin(@Param("map") HashMap map);

    int addNewAoMatchInfo(@Param("map") HashMap map);
    int insertAssignWorkbinToolRelByMatchInfoId(@Param("map") HashMap map);
    int updatePreMatchInfo(@Param("map") HashMap map);
    int updateAssginWorkbinToolRelStatus(@Param("map") HashMap map);

    List<HashMap> queryReplaceTool(@Param("map") HashMap map);
    int replaceToolCode(@Param("map") HashMap map);
    int replaceToolByHandle(@Param("map") HashMap map);

    int updateAssginWorkbinToolByMatchInfoStatus(@Param("msAoMatchInfoId") String msAoMatchInfoId);
}
